package cn.abcsys.cloud.devops.web.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import cn.abcsys.cloud.devops.web.entity.Authority;



/**
 * @author xzg 
 *	权限接口
 */
public interface AuthorityMapper {
	
    /**
     * @author langzi
     * @param record
     * @return
     * @throws SQLException
     * @version 1.0
     * 2016年3月9日
     * insert authority entity to DB
     */
    public int insert(Authority record) throws SQLException;

    /**
     * @author langzi
     * @param actionId
     * @return
     * @throws SQLException
     * @version 1.0
     * 2016年3月9日
     * delete authority entity from DB
     */
    public int deleteById(Integer actionId) throws SQLException;

    /**
     * @author langzi
     * @param record
     * @return
     * @throws SQLException
     * @version 1.0
     * 2016年3月9日
     * update authority entity to DB
     */
    public int update(Authority record) throws SQLException;
    
    /**
     * @author langzi
     * @param actionId
     * @return
     * @throws SQLException
     * @version 1.0
     * 2016年3月9日
     * select authority entity from DB by actionId(primary Id)
     */
    public Authority selectById(Integer actionId) throws SQLException;
    
    /**
     * @author langzi
     * @param authority
     * @return
     * @throws SQLException
     * @version 1.0
     * 2016年3月9日
     * select authority entitys from DB which meet authority condition
     */
    public List<Authority> selectAll(Authority authority) throws SQLException;
	
	/**
	 * @author langzi
	 * @param pid
	 * @return
	 * @throws SQLException
	 * @version 1.0
	 * 2016年3月9日
	 * select authorities entity from DB by action parent Id
	 */
	public List<Authority> selectAuthoritiesByActionParentId(Integer pid) throws SQLException;
	
	
	/**
	 * xzg
	 * @param map
	 * @return
	 * @throws SQLException
	 */
	public List<Authority> selectAuthoritiesByUserIdAndEnvId(Map<String,Integer> map) throws SQLException;
	
	/**
	 * @author langzi
	 * @param map
	 * @return
	 * @throws SQLException
	 * @version 1.0
	 * 2016年3月9日
	 * select authorities entity from DB by roleId
	 */
	public List<Authority> selectAuthoritiesByRoleId(Map<String,Integer> map) throws SQLException;
    
	/**
	 * @author xzg
	 * @param roleId
	 * @return
	 */
	public List<Authority> selectAllAuthorityByRoleId(Map<?,?> map);
	
	
	/**
	 * 分页查询权限列表
	 *  @author xzg
	 * @param map
	 * @return
	 */
	public List<Authority> getAuthoritys(Map<?,?> map);
	
	
	/**
	 * 查询可有button
	 * @author xzg
	 * @param map
	 * @return
	 */
	public List<Authority> selectButtonByUserIdAndEnvId(Map<?,?> map) throws SQLException;
}